package miage.rest.validation;

import java.util.List;

/**
 * Les classes qui implémentent cette interface peuvent être validées
 * 
 * @author Schwartz Michaël
 */
public interface Validatable {

	/**
	 * Retourne une liste de message qui expliquent pourquoi le dernier appel à isValid
	 * a retourné "false".
	 * Dans le cas ou isValid n'a jamais été appelé ou si isValid à retourné "true"
	 * alors la liste renvoyée sera vide
	 *
	 * @ensure result
	 * @return une liste de message d'erreur
	 */
	public List<String> getMessages();


	/**
	 * Renvoie "true" si la validation à reussi.
	 * Renvoie "false" si la validation à échouée et rend disponible la liste de message
	 * d'erreur via getMessages()
	 *
	 * @return le résultat de la validation
	 */
	public boolean isValid();
}
